System and method for programming an implantable pulse generator

ABSTRACT

In one embodiment, a method of programming an IPG comprises providing one or several GUI screens on the programmer device, the GUI screens comprising a master amplitude GUI control for controlling amplitudes for stimsets of a stimulation program and one or several balancing GUI controls for controlling amplitudes of each stimset of the stimulation program; communicating one or several commands from the programmer device to the IPG to change the amplitude of all stimsets of the stimulation program in response to manipulation of the master amplitude GUI control, wherein the amplitude of each stimulation set is automatically calculated by a level selected through the master amplitude GUI control and one or several calibration parameters for the respective stimulation set; and automatically recalculating the one or several calibration parameters for a respective stimulation set in response to manipulation of one of the balancing GUI controls and storing the recalculated calibration parameters.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.12/814,968, filed Jun. 14, 2010, now U.S. Pat. No. 8,180,451, which is acontinuation of U.S. application Ser. No. 11/359,746, filed Feb. 21,2006, now U.S. Pat. No. 7,738,963, which was a continuation-in-part ofU.S. application Ser. No. 11/073,026, filed Mar. 4, 2005, now U.S. Pat.No. 7,254,446, which claims the benefit of U.S. Provisional ApplicationNo. 60/550,040, filed Mar. 4, 2004, and is a continuation-in-part ofU.S. application Ser. No. 11/072,998, filed Mar. 4, 2005, now U.S. Pat.No. 7,295,876, which claims the benefit of U.S. Provisional ApplicationNo. 60/550,039, filed Mar. 4, 2004, all of which are incorporated hereinby reference.

TECHNICAL FIELD

The present application is directed, in general, to implantablestimulation devices (e.g., neurostimulators) and programming ofimplantable stimulation devices.

BACKGROUND

The present application is generally related to stimulation systems, forexample, spinal cord, peripheral, deep-brain, and cortical stimulationsystems. A spinal cord stimulation system is an implantable pulsegenerating system used to provide electrical stimulation pulses to anelectrode array placed epidurally or surgically near a patient's spine.An implanted pulse generator (IPG) may operate independently to providethe required electrical stimulation, or may interact with an externalprogrammer, which delivers programming, control information, and/orenergy for the electrical stimulation, typically through aradio-frequency (RF) or other wireless signal.

Spinal cord stimulation (SCS) is a well accepted clinical method forreducing pain in certain populations of patients. SCS systems typicallyinclude an implanted device, lead wires, and electrodes connected to thelead wires. The implanted device receives signals from an externalprogrammer, and transmits corresponding electrical pulses that aredelivered to the spinal cord (or other tissue) through the electrodeswhich are implanted along the dura of the spinal cord. In a typicalsituation, the attached lead wires exit the epidural space and aretunneled around the torso of the patient to a subcutaneous pocket wherethe device is implanted.

Spinal cord and other stimulation systems are known in the art. Forexample, U.S. Pat. No. 3,646,940 discloses an implantable electronicstimulator that provides timed sequenced electrical impulses to aplurality of electrodes so that only one electrode has a voltage appliedto it at any given time. Thus, the electrical stimuli provided by theapparatus taught in the '940 patent comprise sequential, ornon-overlapping, stimuli.

U.S. Pat. No. 3,724,467 discloses a relatively thin and flexible stripof physiologically inert plastic with a plurality of electrodes formedthereon for stimulation of the spinal cord. The electrodes are connectedby leads to an RF receiver, which is also implanted, and which iscontrolled by an external controller. The implanted RF receiver has nopower storage means for generating electrical stimulations and must becoupled to the external controller in order for neurostimulation tooccur.

U.S. Pat. No. 3,822,708 discloses another type of electrical spinal cordstimulating device. The device has five aligned electrodes which arepositioned longitudinally on the spinal cord and transversely to thenerves entering the spinal cord. Current pulses applied to theelectrodes are said to block sensed intractable pain, while allowingpassage of other sensations. The stimulation pulses applied to theelectrodes are approximately 250 microseconds in width with a repetitionrate of 5 to 200 pulses per second. A patient-operable switch allows thepatient to change which electrodes are activated, i.e., which electrodesreceive the current stimulus, so that the area between the activatedelectrodes on the spinal cord can be adjusted, as required, to betterblock the pain.

Other representative patents that show spinal cord stimulation systemsor electrodes include U.S. Pat. Nos. 4,338,945; 4,379,462; and4,793,353. All of the patents noted above are hereby incorporated byreference.

A typical IPG is self contained, having a multi-year battery pack and asingle treatment program, and is generally programmed during orimmediately following implantation in the patient's body. The batterymay be rechargeable or non-rechargeable.

Other SCS systems have no implanted power source, but receive power andprogramming and/or control information from an external transmitter.These systems will convert the RF signals from the transmitter toprovide power to the implanted receiver, and use the RF programminginformation to determine the intensity, location, and duration of theelectrical pulses delivered to the electrodes.

Programming SCS systems is a relatively complicated process. At a highlevel, programming an SCS system involves selecting stimulationparameters (pulse amplitude, pulse width, pulse frequency, an electrodecombination) that are effective in addressing the pain pattern of apatient. In some cases, the patient may experience pain in multipledistinct regions of the patient's body. In such cases, a stimulation“program” can be created to include multiple “stimsets” that are eachadapted to address pain in a specific, discrete region of the body.

During an initial or follow-up programming session, stimulation programsmay be generated in a somewhat “piecemeal” manner. Specifically, thestimsets are each constructed individually by downloading the stimsetsfrom a patient programmer device to an IPG and observing the response ofthe patient. The parameters are varied for an individual stimset until asatisfactory stimulation response for a particular region of thepatient's body is obtained. Once all of the stimsets are defined in thismanner, the stimsets are combined into a stimulation program which isdownloaded to the IPG. The stimulation program causes a pulse generatorto repeatedly generate pulses in rapid succession according to therespective stimsets. The goal of a stimulation program in SCS is tocause the patient to subjectively experience pain relief for all of theaffected regions in a simultaneous manner.

SUMMARY

In one embodiment, a method of programming an implantable pulsegenerator (IPG), comprises providing one or several graphical userinterface (GUI) screens on the programmer device, the one or severaluser interface screens comprising (i) a master amplitude GUI control forcontrolling amplitudes for multiple stimsets of a stimulation programand (ii) one or several balancing GUI controls for controllingamplitudes of each individual stimset of the stimulation program;communicating one or several commands from the programmer device to theIPG to change the amplitude of all stimsets of the stimulation programin response to manipulation of the master amplitude GUI control by auser of the programmer device, wherein the amplitude of each stimulationset is automatically calculated by a level selected through the masteramplitude GUI control and one or several calibration parameters for therespective stimulation set; and automatically recalculating the one orseveral calibration parameters for a respective stimulation set inresponse to manipulation of one of the balancing GUI controls by theuser and storing the recalculated one or several calibration parametersto affect a change in amplitude for the respective stimulation set.

In another embodiment, a method of programming an implantable pulsegenerator (IPG), comprises providing a plurality of stimsets for astimulation program for execution by the IPG; executing the stimulationprogram by the IPG; providing one or several graphical user interface(GUI) screens on a programmer device, the one or several GUI screenscomprising one or several GUI controls for controlling a respectivestimulation amplitude associated with each stimset of the stimulationprogram; and communicating one or several commands from the programmerdevice to the IPG to change the amplitude of a respective stimset inresponse to manipulation of one GUI control of the one or several GUIcontrols, wherein the one or several commands are communicated while theIPG is executing the stimulation program and the IPG changes theamplitude of the respective stimset without the patient sensinginterruption of the execution of the stimulation program.

The foregoing has outlined rather broadly certain features and/ortechnical advantages in order that the detailed description that followsmay be better understood. Additional features and/or advantages will bedescribed hereinafter. It should be appreciated by those skilled in theart that the conception and specific embodiments disclosed may bereadily utilized as a basis for modifying or designing other structuresfor carrying out the same purposes. It should also be realized by thoseskilled in the art that such equivalent constructions do not depart fromthe spirit and scope of the appended claims. The novel features, both asto organization and method of operation, together with further objectsand advantages will be better understood from the following descriptionwhen considered in connection with the accompanying figures. It is to beexpressly understood, however, that each of the figures is provided forthe purpose of illustration and description only and is not intended asa definition of the limits of the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a block diagram of an implantable pulse generatoraccording to one representative embodiment.

FIG. 2 depicts a block diagram of a data processing system for use as anIPG programmer device according to one representative embodiment.

FIG. 3 depicts a flowchart of a process for programming the IPG withmultiple treatment-protocol programs according to one representativeembodiment.

FIG. 4 depicts a flowchart for adjusting the amplitude associated with astimset in real-time as a multistim set program is being executed by anIPG according to one representative embodiment.

FIG. 5 depicts a flowchart for balancing calibration parameters ofstimsets in a multi-stimset program according to one representativeembodiment.

FIGS. 6A and 6B depict GUI screens for balancing calibration parametersof stimsets in a multi-stimset program according to one representativeembodiment.

FIG. 7 depicts pulse generation circuit 105 that is useful tofacilitating real-time control of the amplitude and activate state ofstimsets while a program is being executed according to onerepresentative embodiment.

DETAILED DESCRIPTION

In some representative embodiments, there are systems and methods forcalibrating and/or programming a stimulation device such as, forexample, an implantable pulse generator (IPG). The IPG, whether it is aself-contained implantable pulse generator (SCIPG) or externally-poweredimplantable pulse generator (EPIPG), communicates with an externalprogrammer to determine the characteristics of the stimuli to bedelivered to the lead electrodes. In representative embodiments, the IPGprovides stimulation using a “multi-stimset” program. That is, the IPGrepeatedly cycles through multiple stimsets that define stimulationparameters. As the IPG cycles through the stimsets, the IPG generatespulses according to the pulse characteristics in the stimsets anddelivers the pulses to respective electrodes defined by the stimsets. Bydelivering pulses according to a multi-stimset program, representativeembodiments enable relatively complex pain patterns to be treated in apatient.

As used herein, an SCIPG is an IPG having an implanted power source,such as a long-lasting or rechargeable battery. An EPIPG is an IPG whichreceives at least some of its operating power from an external powertransmitter, preferably in the form of a RF signal. The external powertransmitter, in the preferred embodiment, is built into the externalprogrammer

FIG. 1 depicts a diagram of the components of an IPG 100 in accordancewith the preferred embodiment. The implanted device comprises, but isnot limited to, a pulse generation circuit 105, a non-volatile memory110, a transceiver 115, a power module 120, and a processor 125. Memory110 may also include volatile memory (not shown).

In an SCIPG, the power module 120 will include a long-term battery or arechargeable battery and a voltage detection, and regulation circuit. Inan EPIPG, and in an SCIPG with a rechargeable battery, the power module120 will include a circuit for converting radio-frequency (RF) energy(or other energy) into direct current. In either case, the power module120 is connected to power the processor 125 and the pulse generationcircuit 105.

The pulse generation circuit 105 is connected to receive power frompower module 120 and to be controlled by processor 125. Processor 125 isconnected to receive power from power module 120 and to read from, andwrite to, non-volatile memory 110. Further, processor 125 is connectedto receive and decode data from transceiver 115. Note that in differentembodiments, transceiver 115 may only be a receiver, while in preferredembodiments, processor 125 is connected to also transmit data viatransceiver 115. Further, in various embodiments, transceiver 115receives power signals for operating or recharging the IPG, transmits,and receives.

Transceiver 115 is positioned to receive RF commands from an externalprogrammer 150, and to deliver these commands to processor 125. Further,in an EPIPG, the receiver 115 is configured to receive RF power signals,and to deliver these to power module 120.

Non-volatile memory 110 contains programming and control data, and canbe written to and read from by processor 125.

Leads 130 are implanted in the patient's epidural space (or otherlocations), as described above or known to those of skill in the art.Leads 130 connect with pulse generation circuit 105, optionally via leadextensions (not shown).

Leads 130, in one embodiment, have multiple electrodes, each of whichcan be independently controlled by the pulse generation circuit 105.Each electrode can be individually set as a positive state (acting as ananode), a negative state (acting as a cathode), or to a high impedance(turned off). The pulse generation circuit 105, under control of theprocessor 125, also controls the pulse amplitude, pulse width, and pulsefrequency to each electrode on the leads 130.

Also shown here (although not a part of the IPG 100 itself) is externalprogrammer 150 which communicates with transceiver 115 of IPG 100.External programmer 150 can be either an external patient programmer(EPP), which is typically carried and operated by the patient, or anadvanced programmer, which is typically operated by the patient'sphysician or clinician. External programmer 150 will typicallycommunicate with transceiver 115 via an antenna (not shown), placed onor near the patient's body proximal to the IPG 100, via near-field orfar-field technology.

In some representative embodiments, processor 110 executes software codethat responds to programming data and commands communicated fromexternal programmer 150 to define one or several multistim programs thatare effective in addressing a patient's pain pattern. Specifically,external programmer 150 preferably communicates “stimsets” and“programs” to be stored in memory 110. External programmer 150 alsocommunicates commands to begin stimulation according to one of theprograms stored in memory 110. Processor 125 processes the command andcauses pulse generation circuit 105 to repeatedly cycle through thestimsets of the selected program. As pulse generation circuit 105 cyclesthrough the stimsets, pulse generation circuit 105 generates pulsesaccording to the pulse characteristics in the stimsets and delivers thepulses to respective electrodes of lead(s) 130 defined by the stimsets.

In preferred embodiments, commands can be sent to control which stimsetsin a program are active during a portion of the test process. In such acase, only pulses are generated for the “active” stimsets and the“inactive” stimsets are temporarily ignored for the purpose of pulsegeneration. Also, external programmer 150 can communicate a command tomodify the amplitude of one of the stimsets as the selected program isexecuted or run by pulse generation circuit 105 as discussed in U.S.patent Ser. No. 11/072,998, entitled “SYSTEM AND METHOD FOR GENERATINGAND TESTING TREATMENT PROTOCOLS.” That is, upon receiving the updatedamplitude information for the respective stimset, processor 125 updatesthe amplitude setting associated with the selected stimset. Pulsegeneration circuit 105 uses the updated amplitude information upon thenext stimulation cycle and need not cease stimulation pulses during theupdate communication process. Accordingly, amplitude programming canoccur in real-time as stimulation is applied by the IPG.

FIG. 7 depicts pulse generation circuit 105 that is useful forfacilitating real-time control of the amplitude and activate state ofstimsets while a program is being executed according to onerepresentative embodiment. Within pulse generation circuit 105, pulsecircuit 704 comprises the active components that generate a pulse uponcommand. The active components are configurable to control the amplitudeof the generated pulse. The generated pulse is controllably deliverableto specific electrodes on leads 130 (shown in FIG. 1) using switchcircuitry 705. Switch circuitry 705 allows each electrode of leads 130to be set to a high impedance state, a positive polarity, or a :negativepolarity.

Pulse controller 701 controls the amplitude of the active circuitry, thestate of switch circuitry 705, the pulse timing, and the pulse width toallow execution of a stimulation program. The frequency of repetition ofthe stimulation program is defined by the value stored in register 702.Register file 703 comprises the parameters for a plurality of stimsets720-1 through 720-N. Stimsets 720 include a pulse amplitude value(“Amp”), a pulse width value (“PW”), and electrode configuration (“E”),and an activate/inactive state value (“A”).

During execution of the program defined by stimsets 720, pulsecontroller 701 begins a program cycle by first examining stimset 720-1.Pulse controller 701 determines whether the stimset's 720 “A” value isset to the active or inactive state. If the value is set to the inactivestate, pulse controller 701 skips to the next stimset (i.e., no pulse isgenerated for an “inactive” stimset). If the value is set to the activestate, pulse controller 701 configures the active components of pulsecircuit 704 to generate a pulse of an amplitude defined by the “Amp”value. Also, pulse controller 701 configures switch circuitry 705according to the electrode configuration defined by the “E”configuration parameter defined in the stimset 720. Then, pulsecontroller 701 asserts a “fire” signal to pulse circuit 704 that causespulse circuit 704 to output a waveform (e.g., a constant voltage orconstant current waveform) of the defined amplitude and that isdelivered through switch circuitry 705. Pulse controller 701 continuesto assert the “fire” signal for the amount of time defined by the pulsewidth “PW” parameter of the stimset 720 and pulse circuitry 704continues outputting the waveform.

After the time defined by the pulse width “PW” parameter is completed,pulse controller 701 ceases assertion of the “fire” signal and waits arelatively short predetermined amount of time. Pulse controller 701 thengoes to the next stimset 720 and repeats this procedure until pulsecontroller 701 reaches the last stimset 720-N. Upon completion of thelast stimset 720-N, pulse controller 701 waits an amount of time definedby the frequency stored in register 702. The frequency stored inregister 702 defines the frequency with which the stimulation program isrepeated.

The stimset parameters can be changed in real-time as the stimulationprogram is being executed by pulse generation circuit 705. Specifically,processor 125 executes software that responds to programming commandsreceived via transceiver 115. When a command is processed by thesoftware, processor 125 communicates a suitable signal through bus 710to pulse controller 701. The signal identifies the stimset 720 to bemodified and the suitable values. Pulse controller 701 overwrites theappropriate values in register file 703. The next time that pulsecontroller 701 access the modified stimset 720, the new parameter valuesare employed for the pulse generation/delivery. Also, pulse controller702 need not cease execution of the stimulation program. Accordingly,modification of one or several stimsets can occur in real-time as otherstimsets are being executed and the patient response can be observed.

FIG. 2 depicts a data processing system in which a preferred embodimentfor use as an external programmer The depicted data processing systemincludes a processor 202 connected to a level two cache/bridge 204,which is connected in turn to a local system bus 206. Local system bus206 may be, for example, a peripheral component interconnect (PCI)architecture bus. Also connected to local system bus in the depictedexample are a main memory 208 and a graphics adapter 210.

Other peripherals, such, as local area network (LAN)/Wide Area Network(WAN)/Wireless (e.g., WiFi) adapter 212, may also be connected to localsystem bus 206. Expansion bus interface 214 connects local system bus206 to input/output (I/O) bus 216. I/O bus 216 is connected to keyboard,mouse adapter, or other input device 218, disk controller 220, and I/Oadapter 222.

Also connected to I/O bus 216 in the example shown is audio adapter 224,to which speakers (not shown) may be connected for playing sounds.Keyboard/mouse adapter 218 provides a connection for a pointing device(not shown), such as a mouse, trackball, trackpointer, pen, etc.

Connected to the I/O adapter 222 is programming wand 230. Programmingwand 230 is used to communicate with an IPG as shown in FIG. 1, in themanner and for the functions described herein. In other embodiments, theI/O adapter 222 is connected to communicate with an IPG.

Those of ordinary skill in the art will appreciate that the hardwaredepicted in FIG. 2 may vary. For example, other peripheral devices, suchas an optical disk drive and the like, also may be used in addition orin place of the hardware depicted. The depicted example is provided forthe purpose of explanation only and is not meant to imply architecturallimitations with respect to the present invention.

A data processing system in accordance with a preferred embodiment ofthe present invention includes an operating system employing a graphicaluser interface. The operating system permits multiple display windows tobe presented in the graphical user interface simultaneously, with eachdisplay window providing an interface to a different application or to adifferent instance of the same application. A cursor in the graphicaluser interface may be manipulated by a user through the pointing device.The position of the cursor may be changed and/or an event, such asclicking a mouse button, generated to actuate a desired response.

One of various commercial operating systems, such as a version ofMicrosoft Windows® a product of Microsoft Corporation located inRedmond, Wash. may be employed if suitably modified in accordance withthe present invention as described.

In a conventional EPIPG, the external programmer is used to send both apower signal and pulse-generation instructions, on a real-time basis, tothe EPIPG. In this case, the programming for the EPIPG is stored on theexternal programmer

A program consists of one or more stimulation settings, also referred toherein as “stimsets.” The programmed stimulation settings specificallydefine and characterize the administered electric pulse stimulation.Other information related to stimulation settings, applications, andpain management, not necessary for an understanding of the presentlypreferred embodiments, is found in U.S. Pat. No. 5,938,690, filed 7 Jun.1996 and issued 17 Aug. 1999, U.S. Pat. No. 6,609,031, filed 7 Jun. 1996and issued 19 Aug. 2003, and U.S. patent application Ser. No.10/120,953, filed 11 Apr. 2002 and published 22 Aug. 2002 as UnitedStates Patent Application Publication Number 2002/0116036, all of whichare hereby incorporated by reference.

In one embodiment, each stimset is comprised of an electrodeconfiguration and stimulation amplitude, stimulation frequency, and/orstimulation pulse width, and those of skill in the art will recognizethat other parameters can be included. The electrode configurationdefines whether each electrode is on or off and, if on, the polarity ofthat electrode. The amplitude is the intensity of the applied electricpulse. The frequency is the number of times the electrodes are turned oneach second. The pulse width is the amount of time the pulse is left onduring each cycle.

A program is defined as having at least one stimset, and generallycorresponds to providing a treatment relating to a specific part of apatient's body. A program can have multiple stimsets; in this case, eachstimset is applied sequentially, repeatedly, and/or randomly.Preferably, each program is applied so that the patient experiences thecombined effect of each stimset, as if they were being appliedsimultaneously.

For example, a first stimset may provide relief to a patient's rightleg, and a second stimset may provide relief to a patient's left leg.According to one embodiment, then, there will be at least three programsstored in the patient's programmer

Program 1 comprises the first stimset;

Program 2 comprises the second stimset; and

Program 3 comprises both the first and second stimsets.

In this case, when the patient uses program 1 on the IPG, she would feelrelief in her right leg, program 2 would provide relief in her left leg,and program 3 would provide relief in both legs.

A program comprising more than one stimset is referred to herein as a“multistim program.”

In one embodiment, the programmer is capable of storing up to 24different programs, each program having up to 8 stimsets. Of course, inother embodiments, the programmer can store a much greater number ofprograms, each having associated a much greater number of stimsets. Incertain embodiments, the IPG itself can store various numbers ofprograms having varying numbers of stimsets.

In the preferred embodiment, all active electrodes in a stimset receivethe same stimulation input, including the same pulse width, pulsefrequency, and pulse amplitude. Each electrode in the stimset isassigned a polarity of positive, negative, or off For example, a firststimset for an 8-electrode lead can be defined as having an amplitude ofapproximately 4 mA, delivered with a 280 microsecond pulse width and an80 Hz frequency, with the following electrode polarities, with “+”indicating a positive polarity (anode), “−” indicating a negativepolarity (cathode), and “0” indicates that the electrode is off:

Electrode # 0 1 2 3 4 5 6 7 Polarity + + 0 0 − − + 0

Note that in the preferred embodiment, every stimset must have at leastone anode and one cathode. In an alternate embodiment, the IPG itselfcan act as an anode. A second stimset for an 8-electrode lead can bedefined as having an amplitude of approximately at 4.2 mA, deliveredwith a 240 microsecond pulse width and an 80 Hz frequency, with thefollowing electrode polarities:

Electrode # 0 1 2 3 4 5 6 7 Polarity − − 0 + − 0 + 0

Then, if a multistim program contains both the first and second stimset(as in the exemplary Program 3, above), the IPG will rapidly alternatebetween the first and second stimsets, so that the patient experiencesthe combined effect of both stimsets in the multistim program. In apreferred embodiment, all stimsets in a program have the same frequency,but other embodiments allow for different frequencies in a singleprogram.

A typical pulse, in a preferred embodiment, is approximately 4V-5V at 4mA, delivered with a 280 microsecond pulse width and an 80 Hz frequency.Those of skill in the art will recognize that the pulse can be deliveredas constant current pulse or a constant voltage pulse (or in any othersuitable manner).

FIG. 3 depicts a flowchart of a process for programming the IPG withmultiple treatment-protocol programs. Note that this process is used toprogram an already-implanted IPG; a similar process can be used topre-program the IPG before implantation.

This process is typically performed by a physician or other professionalusing an advanced programmer, as described herein. Generally, thisprogramming process is not one that would normally be performed by apatient, but could be so if the patient were properly trained.

First, a programming wand will be placed in a location proximate to theIPG or the IPG antenna (step 305). In other embodiments, “far-field”programming can be used. Next, preferably using an RF signal, theadvanced programmer will place the IPG into programming mode (step 310).

The advanced programmer is then used to create a stimset for a treatmentprotocol program (step 315). The treatment protocol program may bestored in either the IPG or the programmer in certain embodiments of theinvention. This program is tested (step 320), and the patient willreport whether she is experiencing any pain relief from the stimulation(step 325). If not, the first stimset is modified and the programcomprising the modified stimset is tested (step 330, returning to step320).

If the patient does experience relief, the programmer will then select asecond stimset (step 335) for the program, and test the program in step340. The first and second stimset are alternately used by the testedprogram in preferred embodiments of the invention. In other embodiments,the first and second stimset are used in rapid succession eitherrandomly or sequentially by the IPG to generate stimulation in step 340.This enables the IPG to treat “complex” pain in multiple body areas, aseach stimset in the tested program can cover a different body area, orcan overlap for more complete coverage in a specific area.

In the preferred embodiment, the tested program comprising a first and asecond stimset is sent to the IPG and executed. A decision is then madein step 345 by receiving a patient selection as to whether the testedprogram provides the best comparative pain relief. If the tested programdoes not provide the best comparative pain relief, then additionalstimsets are added to the program or existing stimsets are modified instep 350. Stimsets can be selectively activated and deactivated. Theaddition, modification, activation, and/or deactivation of stimsetspreferably occur while the program is being executed by the IPG andtesting continues as before in step 340. In certain embodiments, morethan one program is generated by the process described above, and theseparate programs are compared to each other. Steps 335-350 continueuntil an acceptable program is generated.

Note that, optionally, the new secondary stimset in the test multistimprogram can either replace one of the stimsets in the program, or can beadded as an additional stimset in the test multistim program. Thus, thetest multistim program can include as few as two stimsets up to as manyas eight stimsets, in the preferred embodiment, or even more inalternate embodiments. Of course, a program can consist of only onestimset, but then it is not an actual “multistim” program.

According to the process above, a multistim treatment program can bequickly developed using a technique similar to the process used indetermining an eyeglass prescription. A series of tests are made whereinthe “best-so-far” multistim program is compared against a test multistimprogram, and the patient merely has to indicate which of the two feelsbetter. The better of the two is stored, and used against a new testmultistim program in the subsequent comparison.

Here, the test multistim programs can be individually programmed by theoperator of the programmer, or can be automatically generated by theprogrammer In either case, the operator will simply indicate whetherprogram “A” or program “B” is selected as the new “best-so-far”multistim program, according to the patient's feedback.

When the patient indicates that full-coverage relief has been achieved,or the operator otherwise determines that the best practical coveragehas been achieved, the process will end and the current “best-so-far” orknown-good program is stored to the patient's IPG.

FIG. 4 depicts a flowchart that describes the use of an IPG havingmultiple treatment-protocol programs stored therein. This process can beperformed by a clinician during IPG programming or can be performed bythe patient to respond to the variations in the intensity of pain atdifferent bodily locations.

First, the external programmer will be placed in a location proximate tothe IPG or the IPG antenna (step 410). Next, preferably using an RFsignal, the advanced programmer will activate the IPG (step 420).

During operation, the external programmer will optionally, as in thecase of an EPIPG, supply power to the IPG, preferably using an RF signal(step 430). The patient will select the treatment protocol on theexternal programmer (step 440), and the external programmer will send anRF signal to the IPG to indicate the selected treatment-protocol program(step 450). Alternatively, if a treatment protocol selection is not sentby the external programmer, the IPG will select one of the storedtreatment-protocol programs as the “default” program.

The IPG delivers the pulse stimuli, as described herein, according tothe selected treatment-protocol program (step 460) and its associatedstimsets. The user can modify the amplitude or other aspects of thetreatment as needed, using the external programmer (step 470). Theamplitude or other pulse characteristics for a given stimset in amulti-stimset program can occur in real-time as the program is beingexecuted.

When the programming/testing is completed, or when the user chooses, thepulse-stimulus ends (step 480).

Calibration of an IPG is another process that typically occurs duringIPG programming Calibration of an IPG is important, because applicationof the pulses using the same absolute amplitude to different electrodecombinations can result in the patient subjectively experiencingdifferent amounts of stimulation. That is, the stimulation experiencedby the patient in association with one region of the patient's body canbe significantly stronger than the stimulation experienced inassociation with another region of the patient's body. Accordingly, itis desirable to account for such variations for multistim programs.

Calibration of an IPG typically occurs by determining one or severalsubjective stimulation levels. As disclosed in U.S. patent Ser. No.11/073,026, entitled “SYSTEM AND METHOD FOR STIMULUS CALIBRATION FOR ANIMPLANTABLE PULSE GENERATOR,” subjective stimulation levels for an IPGcan include a “perception threshold level” (PV), a “comfort level” (CV),and a “maximum tolerable level” (MTV). The perception threshold levelrefers to the amplitude level that is minimally required for the patientto sense stimulation for a given electrode combination. Comfort levelrefers to the amplitude level that is most comfortable for a patientunder ordinary conditions. The maximum tolerable level refers to thehighest amplitude level that is acceptable for the patient without thepatient experiencing undue discomfort from the stimulation.

By determining these values, a GUI or other interface for a programmerdevice can operate according to a more intuitive manner of operation.Specifically, an “amplitude” GUI control can specify a range ofselectable amplitude values (e.g., 20 different values) in a simplifiedform (e.g., in a “ramp” GUI control). When the GUI control ismanipulated, the actual applied amplitudes are mapped from the selectedvalue from the GUI control to a value within a range defined by thecalibrated PV, CV, and MTV values. For example, if the ramp GUI controlis at the lowest position, stimulation is applied at a level equal tothe PV calibration parameter(s). If the ramp GUI control is positionedat its middle position, stimulation is applied at a level equal to theCV calibration parameter(s). If the ramp GUI control is positioned atits highest position, stimulation is applied at a level equal to the MTVcalibration parameter(s). In a multi-stimset program, when a masteramplitude GUI control is used, the actual applied amplitude for eachstimset can be different. Specifically, the applied amplitude of eachstimset is defined by the level of the master amplitude GUI control andthe calibration values (e.g., the PV, CV, MTV values) associated withthe respective stimset.

One issue associated with using calibration levels and multiple stimsetsin a program is the subjective experience of the stimulation in thedistinct regions of the body may actually change when the stimsets areused in a multi-stimset format to create a stimulation program. It isnot known exactly why combining multiple stimsets can cause a change inthe stimulation experience. Nonetheless, it is believed that during therapid delivery of stimulation pulses, an initial pulse according to afirst stimset can cause some degree of nerve polarization orhyperpolarization that affects the degree of stimulation caused by asuccessive pulse according to a second stimset in the same program.

FIG. 5 depicts a flowchart for balancing amplitude levels of a multistimprogram in accordance with one representative embodiment. This processis preferably performed using an advanced programmer by a physician oranother trained practitioner, although a patient could perform theprocess. The user interface screens, GUI elements, and calculationfunctionality on the advanced programmer discussed in regard to FIG. 5is preferably implemented in software code (e.g., within an IPGprogramming software application).

First, a multi-stimset program is selected for balancing (step 501). Asdescribed above, the multi-stimset program comprises a plurality ofstimulation settings (stimsets) that are applied in sequence in arepeated manner when executed by an IPG.

A suitable GUI element on an advanced programmer is used to select a“master” amplitude value corresponding to one of the calibration levelsfor balancing (step 502). FIG. 6A depicts GUI screen 600 containingamplitude control 601 for setting a master amplitude value according toone representative embodiment.

A ramp-up procedure is initiated by the advanced programmer for thestimulation program (step 503). In the ramp-up procedure, thestimulation program is executed by the IPG and the amplitude for eachstimset is gradually brought up to the respective value of thecalibration parameter being calibrated. For example, in one stage of thebalancing process, the amplitude for each stimset is gradually raised tothe value defined by the stimset's respective CV parameter.

Feedback is obtained from the patient regarding whether the desiredlevel of stimulation for each stimset was initially experienced at thesame time (step 504). If the desired level of stimulation was reached atsubstantially the same time for all stimsets, no (further) balancingneed occur. If not, one or several other GUI elements (e.g., in a set of“balancer” GUI elements) provided by the advanced programmer can bemanipulated in relation to the order in which the stimulation wasexperienced (step 505). For example, if the comfort level for a firststimset preceded the comfort level for a second stimset, the “balancer”bar associated with the first stimset could be manipulated “downward,”as shown in FIG. 6B, to reduce the stimset's calibration parameter and,hence, amplitude. Bar GUI controls 602-1 through 602-4 in balancingscreen 600 are associated with respective stimsets to enable balancingto occur between the stimsets.

Upon the basis of the manipulation of the balancer GUI elements, theassociated calibration parameters are recalculated and stored (step506). In the example given above, the CV parameter for the first stimsetwould be decreased in response to the manipulation of the balancer barelement for that stimset. The balancing process returns to step 503 toverify that the newly adjusted CV parameter(s) is/are correct. Also, itis noted that a subset of MTV parameters can be calculated in terms ofthe PV and CV values and are not directly determined In one embodiment,the subset of MTV parameters for a stimset equals (2*CV−PV).Accordingly, whenever a change to either the PV parameters or the CVparameters occurs, the MTV parameters are preferably recalculated.

Once a given type of calibration parameters are balanced, any other setof calibration parameters could be similarly balanced.

When all of the calibration parameters of the stimsets of a program arebalanced, a master amplitude control of stimulation causes the patientto experience uniform stimulation levels in the various bodily regionsaffected by the stimsets. For example, as a user initially ramps upstimulation, the patient will initially perceive stimulation in eachbodily region at the same time. Also, as the patient chooses to increasethe amplitude using the master amplitude GUI control, the stimulationwill subjectively increase in an even manner across all the affectedbodily regions.

Although representative embodiments and advantages have been describedin detail, it should be understood that various changes, substitutionsand alterations can be made herein without departing from the spirit andscope of the appended claims. Moreover, the scope of the presentapplication is not intended to be limited to the particular embodimentsof the process, machine, manufacture, composition of matter, means,methods and steps described in the specification. As one of ordinaryskill in the art will readily appreciate from this disclosure,processes, machines, manufacture, compositions of matter, means,methods, or steps, presently existing or later to be developed thatperform substantially the same function or achieve substantially thesame result as the corresponding embodiments described herein may beutilized without departing from the scope of the appended claims.Accordingly, the appended claims are intended to include within theirscope such processes, machines, manufacture, compositions of matter,means, methods, or steps.

None of the description in the present application should be read asimplying that any particular element, step, or function is an essentialelement which must be included in the claim scope: THE SCOPE OF PATENTEDSUBJECT MATTER IS DEFINED ONLY BY THE ALLOWED CLAIMS. Moreover, none ofthese claims are intended to invoke paragraph six of 35 U.S.C. §112unless the exact words “means for” are followed by a participle.

It may be advantageous to set forth definitions of certain words orphrases used throughout this patent document: the terms “include” and“comprise,” as well as derivatives thereof, mean inclusion withoutlimitation; the term “or” is inclusive, meaning and/or; the phrases“associated with” and “associated therewith,” as well as derivativesthereof, may mean to include, be included within, interconnect with,contain, be contained within, connect to or with, couple to or with, becommunicable with, cooperate with, interleave, juxtapose, be proximateto, be bound to or with, have, have a property of, or the like; and ifthe term “controller” is utilized herein, it means any device, system orpart thereof that controls at least one operation, whether such a deviceis implemented in hardware, firmware, software or some combination of atleast two of the same. It should be noted that the functionalityassociated with any particular controller may be centralized ordistributed, whether locally or remotely.

What is claimed is:
 1. A method of programming an implantable pulsegenerator (IPG), comprising: providing a graphical user interface (GUI)screen on a programmer device, the GUI screen comprising (i) a masteramplitude GUI control for selecting a master amplitude value from aplurality of amplitude values for a stimulation program comprisingmultiple stimsets, wherein each stimset comprises first, second, andthird amplitude calibration parameters and an electrode configurationand (ii) multiple balancing GUI controls where each balancing GUIcontrol directly controls the first amplitude calibration parameter fora corresponding stimset of the stimulation program; communicating one ormore commands from the programmer device to the IPG to change theamplitudes of generated pulses for all stimsets of the stimulationprogram in response to manipulation of the master amplitude GUI controlby a user of the programmer device, wherein the amplitude of eachstimulation set is automatically calculated by a selected masteramplitude value from the plurality of amplitude values and the first,second, and third amplitude calibration parameters of the respectivestimulation set; automatically recalculating amplitude calibrationparameters of a stimset corresponding to a manipulated balancing GUIcontrol, the first amplitude calibration parameter of the stimset beingassigned a value in direct relation to a level of the manipulatedbalancing GUI control, the second amplitude calibration parameter of thestimset being assigned a value as a function of the recalculated firstamplitude calibration parameter and the third amplitude calibrationparameter; communicating one or more commands from the programmer deviceto the IPG to change the amplitude for pulses generated for a respectivestimset of the stimulation program in response to recalculation ofamplitude calibration parameters for the respective stimset; andcommunicating one or more commands from the programmer device to the IPGto dynamically change active stimsets while a multi-stimset program isexecuted by the IPG.
 2. The method of claim 1 further comprising:automatically ramping a master amplitude level to a predeterminedamplitude level.
 3. The method of claim 2 wherein the user adjusts theone or several balancing GUI controls when the patient experiencesstimulation at a particular subjective level at different times fordifferent ones of the multiple stimsets.
 4. The method of claim 1wherein the first, second, and third calibration parameters comprises aperception threshold parameter, a comfort level parameter, and a maximumtolerable parameter for each stimset.
 5. The method of claim 1 whereinthe IPG continuously executes the program and changes applied amplitudesin real-time as a user of the programming device manipulates the masteramplitude GUI control.
 6. The method of claim 1 wherein the stimsets areadapted to provide stimulation for distinct regions of the patient'sbody.
 7. The method of claim 1 wherein the stimsets are adapted toprovide stimulation for overlapping regions of the patients' body.